<?php

/**
 * pagina actions.
 *
 * @package    Terapia Vital
 * @subpackage pagina
 * @author     Foxsis
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class produtoActions extends sfActionsFoxsis
{
	public function executeIndex(sfWebRequest $request)
	{
		$paginaAtual = $this->_setActualPage();
		$this->filter = $this->_getFilter();
		$this->filter['st_item'] = 'S';
		
		$listQuery = ItemTable::consultarProduto($this->filter, 'i.id_item DESC');
		
		$this->getContext()->getConfiguration()->loadHelpers('Url');
		$this->pager_layout = new Foxsis_Pager_Layout(
			$pager = new Doctrine_Pager(
				$listQuery,
				$paginaAtual,
				12
			),
			new Doctrine_Pager_Range_Sliding(array('chunk' => MAX_PAGER_LINKS)),
			url_for('@produtos')
		);
		
		$this->itens = $this->pager_layout->execute();	

		$this->setTemplate('produtos');
	}
	
	public function executeProdutoDetalhes(sfWebRequest $request)
	{
		try {
			$this->item = $this->getRoute()->getObject();
		} catch(Exception $e){
			$this->redirect('@homepage', 404);
			$this->getUser()->setFlash(
				'alert',
				'Não foi possível carregar o artigo, por favor tente novamente.');
			$this->redirect('@homepage');
		}
	}
	
	public function executeCategoria(sfWebRequest $request)
	{
		$paginaAtual = $this->_setActualPage();
		
		$this->categoria = $this->getRoute()->getObject();
		$filter = array("id_categoria"=>$this->categoria->getIdCategoria());
		$order = "i.nm_item ASC";
		
		$listQuery = ItemTable::consultarProduto($filter, $order);
		
		$this->getContext()->getConfiguration()->loadHelpers('Url');
		$this->pager_layout = new Foxsis_Pager_Layout(
			$pager = new Doctrine_Pager(
				$listQuery,
				$paginaAtual,
				12
			),
			new Doctrine_Pager_Range_Sliding(array('chunk' => MAX_PAGER_LINKS)),
			url_for('@produtoCategoria?slug='.$this->categoria->getSlug())
		);
		
		$this->itens = $this->pager_layout->execute();
		$this->categoria_atual = $this->categoria->getSlug();
		
		$this->setTemplate('produtos', 'produto');
	}
}
